﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace Demo_LINQ
{
    public partial class _Default : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //Load toàn bộ dữ liệu Employee lên trang web
               /*PagingDataContext context = new PagingDataContext();
                var emp = from t in context.Employees
                          select t;
                gv.DataSource = emp;
                gv.DataBind();*/
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            //Search Employee theo mã nhân viên nhập từ web
            /*int id=Int32.Parse(txtEmployID.Text);
            PagingDataContext context = new PagingDataContext();
            var emp = from t in context.Employees
                      where t.EmployeeID==id
                      select t;
            gv.DataSource = emp;
            gv.DataBind();*/

            //Search Employee theo mã nhân viên nhập từ web
            int id=Int32.Parse(txtEmployID.Text);
            PagingDataContext context = new PagingDataContext();
            var emp = from t in context.Employees
                      join d in context.Departments on t.DepartmentID equals d.DepartmentID
                      where t.EmployeeID == id
                      select new
                      {
                          ID = t.EmployeeID,
                          LastName = t.LastName,
                          FirstName = t.FirstName,
                          DepartmentName = d.Name,
                          Salary = t.Salary,
                      };
      
            gvEmployee.DataSource = emp;
            gvEmployee.DataBind();
        }

        protected void btnSearchDept_Click(object sender, EventArgs e)
        {
            //Search Department theo tên do người dùng nhập vào
            string name = txtDepartmentName.Text;
            if (name.Equals(""))
            {
                ShowMessage("Dữ liệu nhập vào không được rỗng");
                gvEmployee.DataSource = null;
                gvEmployee.DataBind();
                return;
            }
            else
            {
                PagingDataContext context = new PagingDataContext();
                var dept = from d in context.Departments
                           where d.Name.Equals(name) || d.Name.Contains(name)
                           select d;
               
                gvDepartment.DataSource = dept;
                gvDepartment.DataBind();
            }
        }
        protected void ShowMessage(string mess)
        {
            string s = "<script type='text/javascript'>";
            s += "alert('" + mess + "');";
            s += "</script>";
            Response.Write(s);
        }

        protected void gvEmployee_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            string[] arr = { "Mã", "Tên", "Họ", "Phòng ban", "Lương" };
            if (e.Row.RowType == DataControlRowType.Header)
            {
                for (int i = 0; i < e.Row.Cells.Count; i++)
                {
                    String temp = e.Row.Cells[i].Text;
                    e.Row.Cells[i].Text = e.Row.Cells[i].Text.Replace(temp,arr[i]);
                }
            }
        }

        protected void gvDepartment_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            string[] arr = { "Mã", "Tên", "Hình ảnh", "Trang chủ", "Điều khiển" };
            if (e.Row.RowType == DataControlRowType.Header)
            {
                for (int i = 0; i < e.Row.Cells.Count; i++)
                {
                    String temp = e.Row.Cells[i].Text;
                    e.Row.Cells[i].Text = e.Row.Cells[i].Text.Replace(temp, arr[i]);
                }
            }
        }

        protected void btnSearchKey_Click(object sender, EventArgs e)
        {
            string key = txtKeyword.Text;
            if (key.Equals(""))
            {
                ShowMessage("Dữ liệu nhập vào không được rỗng");
                gvResult.DataSource = null;
                gvResult.DataBind();
                return;
            }
            else
            {
                PagingDataContext context = new PagingDataContext();
                var dept = from d in context.Departments
                           join em in context.Employees on d.DepartmentID equals em.DepartmentID
                           where em.FirstName.Equals(key)||em.LastName.Equals(key)|| (d.Name.Equals(key))
                           select new
                           {
                               ID = em.EmployeeID,
                               LastName = em.LastName,
                               FirstName = em.FirstName,
                               DepartmentName = d.Name,
                               Salary = em.Salary,
                           };
                int sl=dept.Count();
                ShowMessage(sl.ToString());
                gvResult.DataSource = dept;
                gvResult.DataBind();
            }
        }

        protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            string[] arr = { "Mã", "Tên", "Họ", "Phòng ban", "Lương" };
            if (e.Row.RowType == DataControlRowType.Header)
            {
                for (int i = 0; i < e.Row.Cells.Count; i++)
                {
                    String temp = e.Row.Cells[i].Text;
                    e.Row.Cells[i].Text = e.Row.Cells[i].Text.Replace(temp, arr[i]);
                }
            }
        }

       
    }
}
